﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Entidades.Catalogo;
using Control.Catalogo;
using Entidades.General;
using Entidades.Solicitud;
using Oracle.DataAccess.Client;
using System.Data;
using Entidades.Consultas.Personalizadas;
using Entidades.Consultas;
using System.Configuration;
using System.Collections;

namespace SICOIA.UserControls.Bandejas
{
    public partial class uCConsultaEncabezado : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                lstTipoInstalacion.Items.Add(new ListItem("Localización", "L"));
                lstTipoInstalacion.Items.Add(new ListItem("Ductos", "D"));
                lstTipoInstalacion.Items.Add(new ListItem("Otros", "D"));
                lstTipoInstalacion.SelectedIndex = 0;
                LLenarComboTipoServicios("L");
                LLenarComboEstatusObra();
            }
        }

        protected void lstTipoInstalacion_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                if (lstTipoInstalacion.SelectedItem.ToString().Equals("Localización"))
                    LLenarComboTipoServicios("L");
                else if (lstTipoInstalacion.SelectedItem.ToString().Equals("Ductos"))
                    LLenarComboTipoServicios("D");
                else if (lstTipoInstalacion.SelectedItem.ToString().Equals("Otros"))
                    LLenarComboTipoServicios("O");

                UpdatePanelCuerpo.Update();
            }
            catch (Exception  ex) {
                string a = ex.Message;

            }
        }

        private void LLenarComboTipoServicios(string tipo)
        {
            try
            {
                // llenamos el combo tipo de servicio
                CtrlTiposServicios controlTipoServicios = new CtrlTiposServicios();
                List<EntTipoServicio> listaTipoServicio = new List<EntTipoServicio>();

                listaTipoServicio =
                    (List<EntTipoServicio>)controlTipoServicios.ObtenerTodos()
                    .ConvertAll<EntTipoServicio>(delegate(IEntidad enti) { return (EntTipoServicio)enti; });


                var listaFiltrada = listaTipoServicio.Where(x => x.TrabajoRealizar == tipo);
                int contero = listaFiltrada.Count();

                this.chkTipoServicio.Items.Clear();
                this.chkTipoServicio.DataSource = listaFiltrada;
                this.chkTipoServicio.DataValueField = "CveTipoServicio";
                this.chkTipoServicio.DataTextField = "Descripcion";
                this.chkTipoServicio.DataBind();
            }
            catch (Exception ex)
            {
                string a = ex.Message;
            }
        }
        private void LLenarComboEstatusObra()
        {
            try
            {
                // llenamos el combo tipo de servicio
                CtrlEstatus ctrl = new CtrlEstatus();
                List<EntEstatus> lista = new List<EntEstatus>();

                lista =
                    (List<EntEstatus>)ctrl.ObtenerTodosObra()
                    .ConvertAll<EntEstatus>(delegate(IEntidad enti) { return (EntEstatus)enti; });

                this.cmbEstatus.Items.Clear();
                this.cmbEstatus.DataSource = lista;
                this.cmbEstatus.DataValueField = "CveEstatus";
                this.cmbEstatus.DataTextField = "Descripcion";
                this.cmbEstatus.DataBind();
            }
            catch (Exception ex)
            {
                string a = ex.Message;
            }
        }

        protected void btnNuevo_Click(object sender, EventArgs e)
        {
            try
            {
                // Atrapar los valores del formulario para Enviarlos a la Pantalla de Jona's 
                //getTiposServiciosSeleccionados();
            }
            catch (Exception ex)
            {
                string a = ex.Message;
            }
        }
        /// <summary>
        /// Funcionando recupera los values seleccionados
        /// </summary>
        /// <returns></returns>
        private IEnumerable<int> getTiposServiciosSeleccionados()
        {

            IEnumerable<int> allChecked = from ListItem item in chkTipoServicio.Items
                                          where item.Selected
                                          select int.Parse(item.Value);

            return allChecked;
        }
    }
}